package cn.wolfcode.util;

import cn.wolfcode.domain.Employee;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.Servlet;
import javax.servlet.http.HttpSession;
import java.util.List;

public class UserContext {
//    public static final String USER_IN_SESSION = "USER_IN_SESSION";
//    public static final String EXPRESSION_IN_SESSION= "EXPRESSION_IN_SESSION";
//
//    /**
//     * 获取session对象
//     * @return
//     */
//    public static HttpSession getSession(){
//        //RequestContextHolder可以在任意地方获取request对象 response对象 session对象
//        ServletRequestAttributes requestAttributes = (ServletRequestAttributes)RequestContextHolder.currentRequestAttributes();
//        HttpSession session = requestAttributes.getRequest().getSession();
//        return  session;
//    }
//
//    /**
//     * 获取 当前登录用户
//     * @return
//     */
//    public static Employee getCurrentUser(){
//        return (Employee) getSession().getAttribute(USER_IN_SESSION);
//    }
//
//    /**
//     * 设置当前用户到session中
//     * @param employee
//     */
//    public static  void setCurrentUser(Employee employee){
//
//        getSession().setAttribute(USER_IN_SESSION,employee);
//    }
//
//    /**
//     * 获取当前用户的所有权限
//     * @return
//     */
//    public static List<String> getExpression(){
//        return (List<String>) getSession().getAttribute(EXPRESSION_IN_SESSION);
//    }
//
//    /**
//     * //设置当前登录用户的权限表达式到session
//     * @param expression
//     */
//    public static  void setExpression(List<String> expression){
//        getSession().setAttribute(EXPRESSION_IN_SESSION,expression);
//    }



    public static Employee getCurrentUser(){
        return (Employee) SecurityUtils.getSubject().getPrincipal();
    }

}
